home *** CD-ROM | disk | FTP | other *** search
- typedef void (*PaintMenuCallback)();
-
- typedef struct PaintMenuItem_s {
- Widget widget;
- char *name;
- PaintMenuCallback callback;
- void *data;
- int flags;
- int nright;
- struct PaintMenuItem_s *right;
- Widget rightShell;
- } PaintMenuItem;
-
- #define MF_NONE 0x00
- #define MF_CHECK 0x01
- #define MF_CHECKON (0x01|0x02)
-
- #define MF_GROUP1 0x10
- #define MF_GROUP2 0x20
- #define MF_GROUP3 0x40
- #define MF_GROUP4 0x80
-
- typedef struct {
- Widget widget;
- char *name;
- int nitems;
- PaintMenuItem *items;
- } PaintMenuBar;
-
- extern Widget MenuBarCreate(Widget, int, PaintMenuBar[]);
- extern Widget MenuPopupCreate(Widget, int, PaintMenuItem[]);
- extern void MenuCheckItem(Widget, Boolean);
-
- #define MI_NEW(name, flag, cb, cbdata, nright, right) { None, name, (PaintMenuCallback)cb, (void*)cbdata, flag, nright, right, None }
- #define MI_RIGHT(name, nright, right) MI_NEW(name, MF_NONE, NULL, NULL, nright, right)
- #define MI_FLAGCB(name, flag, cb, cbdata) MI_NEW(name, flag, cb, cbdata, 0, NULL)
- #define MI_FLAG(name, flag) MI_FLAGCB(name, flag, NULL, NULL)
- #define MI_SIMPLECB(name, cb, cbdata) MI_FLAGCB(name, MF_NONE, cb, cbdata)
- #define MI_SIMPLE(name) MI_SIMPLECB(name, NULL, NULL)
- #define MI_SEPERATOR() MI_SIMPLE("")
-